import { gen } from 'swagger2ts-gen-cli'

export default {
  // 描述
  description: '根据swagger-config自动生成接口调用类',
  // 提示列表
  prompts: [
    {
      type: 'list',
      name: 'path',
      message: '请选择创建目录',
      choices: ['./temp/apis/', '../'],
    },
    {
      type: 'input',
      name: 'url',
      message:
        '请输入swagger-config 或 swagger-resources 的路径, 例如: http://xxx.xxx.xxx.xxx:xxxx/v3/api-docs/swagger-config 或 http://xxx.xxx.xxx.xxx:xxxx/swagger-resources',
      validate: (v) => {
        if (!v)
          return '路径不能为空'
        else return true
      },
    },
    {
      type: 'list',
      name: 'client_type',
      message: '请选择要生成的客户端代码文件类型',
      choices: ['typescript-axios'],
    },
    {
      type: 'input',
      name: 'output_dir',
      message:
        '请输入生成客户端代码文件后存放的路径（已包含‘./temp/apis/’或‘../’前缀）',
      // 验证
      validate: (v) => {
        if (!v)
          return '生成路径不能为空'
        else return true
      },
    },
    {
      type: 'confirm',
      name: 'convert',
      message: '是否需要转换为 openApi3.0 标准？',
      default: true,
    },
    {
      type: 'confirm',
      name: 'clean',
      message: '是否清理解压后的无效文件？',
      default: true,
    },
  ],
  // 动作列表
  actions: (data) => {
    // 调用swagger2ts-gen-cli
    gen({
      ...data,
      output_dir: data.path + data.output_dir,
    })
    return []
  },
}
